home *** CD-ROM | disk | FTP | other *** search
/ Spanish Scene 1 / SpanishScene1.iso / spanish pack n°1 by llfb / revistas / trashcan / trashcan01-1.dms / trashcan01-1.adf / Fuentes / SourceDistortions.lzx / Distortions.s
Text File  |  1981-10-08  |  19KB  |  1,178 lines

  1. bltcon0    equ    $dff040
  2. bltcon1    equ    $dff042
  3. bltafwm    equ    $dff044
  4. bltalwm    equ    $dff046
  5. bltcpth    equ    $dff048
  6. bltbpth    equ    $dff04c
  7. bltapth    equ    $dff050
  8. bltdpth    equ    $dff054
  9. bltsize    equ    $dff058
  10. bltcmod    equ    $dff060
  11. bltbmod    equ    $dff062
  12. bltamod    equ    $dff064
  13. bltdmod    equ    $dff066
  14. bltcdat    equ    $dff070
  15. bltbdat    equ    $dff072
  16. bltadat    equ    $dff074
  17.  
  18. cop1    equ    $dff080
  19. cop2    equ    $dff084
  20. copjmp1    equ    $dff088
  21. copjmp2    equ    $dff08a
  22.  
  23.     SECTION Rauling,CODE
  24.  
  25. InitSys    
  26.     bsr.s    OSout
  27.     bsr.w    Start
  28.     bsr.w    OSin
  29.     rts
  30.     dc.b    "$VER: Distortions Intro Version 3.1  25-Jul-95",0
  31.  
  32.     cnop    0,4
  33. OSout
  34.     movea.l    4.w,a6            ; System Base
  35.     lea    GfxLib,a1
  36.     moveq    #0,d0
  37.     jsr    -552(a6)        ; OpenLibrary
  38.     move.l    d0,GfxBase        ; Save Graphics_lib base
  39.     move.l    d0,a6
  40.     move.l    38(a6),OldCopper    ; gb_CopInit    Sys Copper
  41.     move.l    34(a6),OldView        ; gb_ActiView    Sys View
  42.     jsr    -456(a6)        ; Own Blitter
  43.     lea    0.w,a1        ;LoadView Null
  44.     jsr    -222(a6)    ;LoadView
  45.     jsr    -270(a6)    ;WaitTOF
  46.     jsr    -270(a6)
  47.  
  48.     movea.l    4.w,a6            ; System Base
  49.     jsr    -132(a6)        ; Forbid
  50.     jsr    -150(a6)        ; SuperState
  51.     move.l    d0,SysStack        ; System stack
  52.     btst.b    #0,$129(a6)    ; are we at least 68010? ($129=AttnFlags+1)
  53.     beq.s    .68000            ; nope.
  54.  
  55.     movec.l    vbr,d0
  56.     move.l    d0,VectorBase        ; Get Real VBR
  57.     btst.b    #2,$129(a6)
  58.     beq.s    .68000
  59.     move.l    #$ff,detect_30
  60.  
  61. .68000    move    $dff01c,IntEnaR        ; Initialize custom chips
  62.     move    $dff01e,IntReqR        ; Save old valours first
  63.     move    $dff002,DmaConR
  64.     move    $dff010,AdkConR
  65.     move    #%0111111111111111,$dff09a    ; INTENA
  66.     move    #%1100000000100000,$dff09a    * Enable desired IRQs
  67. .Spr    move.l    $dff004,D0            ; Wait RASTER to
  68.     and.l    #$0001FF00,D0            ; disable SPRITES
  69.     bne.s    .Spr
  70.     move    #%0111111111111111,$dff096    ; DMACONW
  71.     move    #%1000001111000000,$dff096    * Enable desired DMAs
  72.  
  73.     move    $dff07c,d0        ;Ponerlo en/antes/despues de Copper?
  74.     cmp.b    #$f8,d0
  75.     bne.s    .NotAGA            ; Not AGA
  76.     move    #0,$dff1fc        * Fix AGA Res     (Ponerlo en Copper?)
  77.  
  78. .NotAGA    move.l    VectorBase,a0
  79.     move.l    $6c(a0),Int3Save    ; Save level 3 vector
  80.     move.l    #INTER,$6c(a0)        ; Set OUR! own interrupt
  81.     rts
  82.  
  83.     cnop    0,4
  84. OSin
  85.     move.l    VectorBase,a0
  86.     move.l    Int3Save,$6c(a0)    ; Reset Interrupts
  87.     move    IntEnaR,d7        ; Reset custom chips
  88.     bset    #$f,d7
  89.     move    d7,$dff09a        ; Reset Interrupts
  90.     move    IntReqR,d7
  91.     bset    #$f,d7
  92.     move    d7,$dff09c        ; Reset interrupt request
  93.     move    DmaConR,d7
  94.     bset    #$f,d7
  95.     move    d7,$dff096        ; Reset DMAConw
  96.     move    AdkConR,d7
  97.     bset    #$f,d7
  98.     move    d7,$dff09e        ; Reset ADK
  99.  
  100.     move.l    GfxBase,a6
  101.     movea.l    OldView,a1
  102.     jsr    -222(a6)        ;LoadView
  103.     move.l    OldCopper,$dff080    ; Reset System Copper
  104.     jsr    -462(a6)        ; DisOwn Blitter
  105.  
  106.     movea.l    4.w,a6            ; System Base
  107.     move.l    GfxBase,a1        ; Close Graphics_lib
  108.     jsr    -414(a6)        ; CloseLibrary
  109.     jsr    -138(a6)        ; Permit
  110.     move.l    SysStack,d0        ; Systemstack
  111.     jsr    -156(a6)        ; UserState
  112.  
  113.     moveq.l    #0,D0
  114.     rts
  115.  
  116. MUSICA=0
  117.  
  118. ***************** INTERRUPCION
  119.     cnop    0,4
  120.     
  121. INTER    movem.l    A0-A6/D0-D7,-(sp)
  122.     addq.l    #1,timer
  123.  
  124.     IFEQ    MUSICA
  125.     cmp.l    #$ff,detect_30
  126.     bne.s    _ca_ok
  127.     movec.l    cacr,d0
  128.     bclr.l    #30,d0
  129.     movec.l    d0,cacr
  130. _ca_ok
  131.     bsr    mt_music
  132.     cmp.l    #$ff,detect_30
  133.     bne.s    _si_ok
  134.     movec.l    cacr,d0
  135.     bset.l    #30,d0
  136.     movec.l    d0,cacr
  137. _si_ok
  138.     ENDC
  139.     move    #$20,$dff09c
  140.     movem.l    (sp)+,A0-A6/D0-D7
  141.     rte                
  142.  
  143. ***************** PROGRAMA
  144.  
  145.     cnop    0,4
  146. Start
  147.     lea    bpl0,a0
  148.     move.l    #small,d0
  149.     move    d0,6(a0)
  150.     swap    d0
  151.     move    d0,2(a0)
  152.     swap    d0
  153.     add.l    #2400,d0
  154.     move    d0,14(a0)
  155.     swap    d0
  156.     move    d0,10(a0)
  157.     swap    d0
  158.     add.l    #2400,d0
  159.     move    d0,22(a0)
  160.     swap    d0
  161.     move    d0,18(a0)
  162.     swap    d0
  163.     add.l    #2400,d0
  164.     move    d0,30(a0)
  165.     swap    d0
  166.     move    d0,26(a0)
  167.  
  168.     lea    bpl1,a0
  169.     move.l    #calav,d0
  170.     move    d0,6(a0)
  171.     swap    d0
  172.     move    d0,2(a0)
  173.     swap    d0
  174.     add.l    #10240,d0
  175.     move    d0,14(a0)
  176.     swap    d0
  177.     move    d0,10(a0)
  178.     swap    d0
  179.     add.l    #10240,d0
  180.     move    d0,22(a0)
  181.     swap    d0
  182.     move    d0,18(a0)
  183.     swap    d0
  184.     move.l    #plano1,d0
  185.     move    d0,30(a0)
  186.     swap    d0
  187.     move    d0,26(a0)
  188.     move.l    #plano1+120,d0
  189.     move    d0,38(a0)
  190.     swap    d0
  191.     move    d0,34(a0)
  192.  
  193.     lea    btbpl,a0
  194.     move.l    #bgtnc,d0
  195.     move    d0,6(a0)
  196.     swap    d0
  197.     move    d0,2(a0)
  198.     swap    d0
  199.     add.l    #10240,d0
  200.     move    d0,14(a0)
  201.     swap    d0
  202.     move    d0,10(a0)
  203.     swap    d0
  204.     add.l    #10240,d0
  205.     move    d0,22(a0)
  206.     swap    d0
  207.     move    d0,18(a0)
  208.     swap    d0
  209.     add.l    #10240,d0
  210.     move    d0,30(a0)
  211.     swap    d0
  212.     move    d0,26(a0)
  213.     swap    d0
  214.     add.l    #10240,d0
  215.     move    d0,38(a0)
  216.     swap    d0
  217.     move    d0,34(a0)
  218.  
  219.     lea    disbpl,a0
  220.     move.l    #titulo,d0
  221.     move    d0,6(a0)
  222.     swap    d0
  223.     move    d0,2(a0)
  224.     swap    d0
  225.     add.l    #10240,d0
  226.     move    d0,14(a0)
  227.     swap    d0
  228.     move    d0,10(a0)
  229.     swap    d0
  230.     add.l    #10240,d0
  231.     move    d0,22(a0)
  232.     swap    d0
  233.     move    d0,18(a0)
  234.     swap    d0
  235.     add.l    #10240,d0
  236.     move    d0,30(a0)
  237.     swap    d0
  238.     move    d0,26(a0)
  239.  
  240.     lea    mc0,a0
  241.     move.l    #small,d0
  242.     move    d0,6(a0)
  243.     swap    d0
  244.     move    d0,2(a0)
  245.     swap    d0
  246.     add.l    #2400,d0
  247.     move    d0,14(a0)
  248.     swap    d0
  249.     move    d0,10(a0)
  250.     swap    d0
  251.     add.l    #2400,d0
  252.     move    d0,22(a0)
  253.     swap    d0
  254.     move    d0,18(a0)
  255.     swap    d0
  256.     add.l    #2400,d0
  257.     move    d0,30(a0)
  258.     swap    d0
  259.     move    d0,26(a0)
  260.  
  261.     lea    mc1,a0
  262.     move.l    #mc_11,d0
  263.     move    d0,6(a0)
  264.     swap    d0
  265.     move    d0,2(a0)
  266.     swap    d0
  267.     add.l    #$a00,d0
  268.     move    d0,14(a0)
  269.     swap    d0
  270.     move    d0,10(a0)
  271.  
  272.     lea    a64.bpl,a0
  273.     move.l    #a64k,d0
  274.     move    d0,6(a0)
  275.     swap    d0
  276.     move    d0,2(a0)
  277.     swap    d0
  278.     add.l    #10240,d0
  279.     move    d0,14(a0)
  280.     swap    d0
  281.     move    d0,10(a0)
  282.  
  283.  
  284.     move.l    #texto,puntsig
  285.  
  286.     IFEQ    MUSICA
  287.     lea    mt_dat1,a0
  288.     bsr    mt_init
  289.     ENDC
  290.  
  291.     bsr    btshow
  292.     bsr    aishow
  293.  
  294.     move.l    #distcop,cop1
  295.     bsr    fadein
  296.     move.l    #639,d2
  297. buc2    bsr.s    frame
  298.     dbra    d2,buc2
  299.     bsr    fadeout
  300.  
  301. buc3    bsr.s    infinite_bobs
  302.  
  303. buc4
  304.     bsr.s    frame
  305.  
  306.     move.l    #fincop,cop1
  307. lmb    bsr.s    frame
  308.     bsr    scrv
  309.     btst     #6,$bfe001
  310.     bne.s     lmb
  311. fin
  312.     bsr    wablit
  313.     bsr.s    frame
  314.     IFEQ    MUSICA
  315.     bsr    mt_end
  316.     ENDC
  317.     rts
  318.  
  319.     cnop    0,4
  320. frame
  321.     cmp.b    #254,$dff006
  322.     bne.s    frame
  323. frame1
  324.     cmp.b    #255,$dff006
  325.     bne.s    frame1
  326.     rts
  327.  
  328. b_inf    MACRO
  329.     lea    mc1pal,a0
  330.     move.w    #0,2(a0)
  331.     move.w    #0,6(a0)
  332.     move.w    #0,10(a0)
  333.     move.w    #0,14(a0)
  334.     bsr    inf_borr
  335.     bsr    frame
  336.     lea    mc1pal,a0
  337.     move.w    #0,2(a0)
  338.     move.w    #$555,6(a0)
  339.     move.w    #$aaa,10(a0)
  340.     move.w    #$fff,14(a0)
  341.     ENDM
  342.  
  343. infinite_bobs
  344.     bsr.s    frame
  345.     move.l    #macop,cop1
  346.     bsr.s    frame
  347.     move.l    #0,inf_temp
  348.     move.l    #0,inf_fr_scr
  349.     move.l    #0,inf_fr_bob
  350.     move.l    #1,inf_path
  351.     bra    inf6
  352. inf1    
  353.     bsr    inf_ch
  354.  
  355.     cmp.l    #1023,inf_temp
  356.     bgt.s    inf2
  357.  
  358.     move.l    #0,d6
  359.     move.l    #0,d7
  360.     move.w    (a5),d6
  361.     move.w    2(a5),d7
  362.  
  363.     move.l    a6,a0
  364.     lea    bobgfx,a1
  365.     lea    bobmask,a2
  366.     clr.l    d0
  367.     clr.l    d1
  368.     move.l    d6,d0
  369.     move.l    d7,d1
  370.     bsr    blit
  371.     
  372.     move.l    a6,a0
  373.     add.l    #$2800,a0
  374.  
  375.     lea    bobgfx+64,a1
  376.     lea    bobmask,a2
  377.     move.l    d6,d0
  378.     move.l    d7,d1
  379.     bsr    blit
  380.  
  381.     add.l    #4,a5
  382. inf2
  383.     addq.l    #1,inf_fr_scr
  384.     cmp.l    #8,inf_fr_scr
  385.     bne.s    inf3
  386.     clr.l    inf_fr_scr
  387. inf3
  388.     addq.l    #1,inf_fr_bob
  389.     cmp.l    #10,inf_fr_bob
  390.     bne.s    inf4
  391.     clr.l    inf_fr_bob
  392. inf4
  393.     add.l    #1,inf_temp
  394.     cmp.l    #1174,inf_temp
  395.     bgt    inf5
  396.     bra    inf1
  397. inf5    
  398.     move.l    #0,inf_temp
  399.     b_inf
  400.     
  401.     add.l    #1,inf_path
  402.     cmp.l    #4,inf_path
  403.     beq.s    inf_fin
  404. inf6
  405.     cmp.l    #1,inf_path
  406.     beq.s    _ifp_1
  407.     cmp.l    #2,inf_path
  408.     beq.s    _ifp_2
  409.     cmp.l    #3,inf_path
  410.     beq.s    _ifp_3
  411.     cmp.l    #4,inf_path
  412.     beq.s    _ifp_4
  413. _ifp_1
  414.     lea    inf_p_1,a5
  415.     bra    inf1
  416. _ifp_2
  417.     lea    inf_p_2,a5
  418.     bra    inf1
  419. _ifp_3
  420.     lea    inf_p_3,a5
  421.     bra    inf1
  422. _ifp_4
  423.     lea    inf_p_4,a5
  424.     bra    inf1
  425.  
  426.     cnop    0,4
  427. inf_fin
  428.     bsr.s    inf_ch
  429.     add.b    #2,mcypos
  430.     cmp.b    #$fd,mcypos
  431.     blt.s    inf_fin
  432.     rts
  433.  
  434. inf_borr
  435.     lea    mc_11,a6
  436.     move.l    #$1400*8,d0
  437.     subq.l    #1,d0
  438. inf_b_2
  439.     move.l    #0,(a6)+
  440.     dbra    d0,inf_b_2
  441.     
  442.     rts
  443. inf_ch
  444.     clr.l    d0
  445.     move.l    inf_fr_scr,d0
  446.     mulu.w    #$5000,d0
  447.     move.l    #0,a6
  448.     lea    mc_11,a6
  449.     add.l    d0,a6
  450.  
  451.     bsr    frame
  452.     lea    mc1,a0
  453.     move.l    a6,d0
  454.     move    d0,6(a0)
  455.     swap    d0
  456.     move    d0,2(a0)
  457.     swap    d0
  458.     add.l    #$2800,d0
  459.     move    d0,14(a0)
  460.     swap    d0
  461.     move    d0,10(a0)
  462.     rts
  463.  
  464. ; Imprimir bob
  465. ; a0-->bitplane    a1-->bob    a2-->mascara
  466. ; d0-->xpos    d1-->ypos
  467.     cnop    0,4
  468. blit
  469.     bsr.s    wablit
  470.     move.l    a2,bltapth
  471.     move.l    a1,bltbpth
  472.     
  473.     clr.l    d2
  474.     clr.l    d3
  475.     move.l    d0,d2
  476.     and.l    #$f,d2
  477.     swap    d2
  478.     ror.l    #4,d2
  479.     move.l    d2,d3
  480.     or.l    #$fca,d2
  481.     swap    d2
  482.     or.l    d2,d3
  483.     move.l    d3,bltcon0
  484.  
  485.     and.l    #$fff0,d0
  486.     ror.l    #3,d0
  487.     mulu.w    #40,d1
  488.     add.l    d0,d1
  489.     add.l    d1,a0
  490.  
  491.     move.l    a0,bltcpth
  492.     move.l    a0,bltdpth
  493.  
  494.     move.w    #36,bltcmod
  495.     move.w    #36,bltdmod
  496.     move.l    #0,bltbmod
  497.  
  498.     move.l    #$ffffffff,bltafwm
  499.     move.w    #$402,bltsize
  500.     rts
  501.     
  502.     cnop    0,4
  503. wablit
  504.     btst.b    #6,$dff002
  505.     bne.s    wablit
  506.     btst.b    #6,$dff002
  507.     bne.s    wablit
  508.     rts
  509.  
  510. ; borrado de memoria con blitter
  511. ; a0  puntero
  512. ; d0  n° bytes (par)
  513.     cnop    0,4
  514. clrbpl
  515.     clr.l    (a0)+
  516.     dbra    d0,clrbpl
  517.     rts
  518.  
  519.     cnop    0,4
  520. scrv
  521.     btst.b    #2,$bfe017
  522.     beq.s    scrv_fin
  523.  
  524.     addq.b    #1,scroltmp
  525.     cmp.b    #2,scroltmp
  526.     beq.s    scrv1
  527. scrv_fin
  528.     rts
  529.  
  530. scrv1    clr.b    scroltmp
  531.     bsr    wablit
  532.     move.l    #$0ff00000,bltcon0    ; modos de copia
  533.     move.l    #$ffffffff,bltafwm    ; mascara fuente A
  534.     move.l    #plano1,bltdpth        ; destino
  535.     move.l    #plano1+40,bltapth    ; fuente A
  536.     move.l    #0,bltamod        ; borra modulos A y D
  537.     move.w    #$3494,bltsize
  538.     bsr    wablit
  539.  
  540.     addq.b    #1,letratmp    ; Incrementa tiempo para linea nueva
  541.     cmp.b    #10,letratmp    ; Imprime
  542.     beq.s    prline        ; si es 10
  543.  
  544.     rts
  545.  
  546.     cnop    0,4
  547. prline
  548.     clr.l    letratmp
  549.     move.l    #plano1+(194*40),a2
  550.     move.l    puntsig,a3
  551.     tst.b    (a3)
  552.     bne.s    prlne2
  553.     movea.l    #texto,a3
  554. prlne2    bsr.s    ptext
  555.     move.l    a3,puntsig
  556.     rts
  557.  
  558. ** Printtext sub          **
  559. ** a2 --> Scan Inicio     **
  560. ** a3 --> Direccion texto **
  561.     cnop    0,4
  562. ptext
  563.     clr.l    d0
  564.     move.b    (a3)+,d0
  565.     cmp.b    #10,d0
  566.     bne.s    ptext2
  567.     rts
  568. ptext2    move.l    a2,a0
  569.     subq.b    #1,d0
  570.     bsr.s    pchar
  571.     addq.l    #1,a2
  572.     bra.s    ptext
  573.  
  574. ** Print Subrutine **
  575. ** d0 --> Caracter **
  576. ** a0 --> Scan de inicio **
  577.     cnop    0,4
  578. pchar
  579.     asl.l    #3,d0
  580.     move.l    #font,a1
  581.     add.l    d0,a1
  582.     moveq.l    #7,d1
  583. pchar1    move.b    (a1)+,(a0)
  584.     lea    40(a0),a0
  585.     dbra    d1,pchar1
  586.     rts
  587.  
  588.     cnop    0,4
  589.  
  590. numcols    equ    15
  591. numbucs    equ    63
  592.  
  593. fadein
  594.     move.l    #$dff180,a4
  595.     moveq.l    #numcols,d0
  596. fadein1
  597.     clr.w    (a4)+
  598.     dbra    d0,fadein1
  599.  
  600.     lea    tmp,a2
  601.     lea    target,a3
  602.     move.l    #$dff180,a4
  603.     move.l    a2,a0
  604.     move.l    a3,a1
  605.     moveq.l    #numbucs,d0
  606. fadein2
  607.     move.b    (a1),d1
  608.     sub.b    #16,d1
  609.     move.b    d1,(a0)+
  610.     clr.b    (a1)+
  611.     dbra    d0,fadein2
  612.     
  613.     moveq.l    #15,d0
  614. fadein3
  615.     move.l    a2,a0
  616.     move.l    a3,a1
  617.     moveq.l    #numbucs,d1
  618. fadein4
  619.     move.b    (a0),d2
  620.     addq.b    #1,d2
  621.     move.b    d2,(a0)+
  622.     bge.s    fadein5
  623.     clr.b    d2
  624. fadein5
  625.     move.b    d2,(a1)+
  626.     dbra    d1,fadein4
  627.  
  628.     move.l    a3,a0
  629.     move.l    a4,a1
  630.     moveq.l    #numcols,d6
  631. fadein6
  632.     clr.l    d1
  633.     clr.l    d2
  634.     clr.l    d3
  635.     move.b    (a0)+,d1
  636.     move.b    (a0)+,d2
  637.     move.b    (a0)+,d3
  638.     addq.l    #1,a0
  639.  
  640.     rol.b    #4,d2
  641.     rol.w    #8,d1
  642.     or.w    d1,d2
  643.     or.w    d2,d3
  644.     move.w    d3,(a1)+
  645.  
  646.     dbra    d6,fadein6
  647.     bsr    frame
  648.     dbra    d0,fadein3
  649.     rts
  650.  
  651. fadeout
  652.     lea    tmp,a2
  653.     lea    target,a3
  654.     move.l    #$dff180,a4
  655.     move.l    a2,a0
  656.     move.l    a3,a1
  657.     moveq.l    #numbucs,d0
  658. fadeout1    
  659.     move.b    (a1)+,(a0)+
  660.     dbra    d0,fadeout1
  661.     
  662.     moveq.l    #15,d0
  663. fadeout2    
  664.     move.l    a2,a0
  665.     move.l    a3,a1
  666.     moveq.l    #numbucs,d1
  667. fadeout3    
  668.     move.b    (a0),d2
  669.     subq.b    #1,d2
  670.     move.b    d2,(a0)+
  671.     bge.s    fadeout4
  672.     clr.b    d2
  673. fadeout4    
  674.     move.b    d2,(a1)+
  675.     dbra    d1,fadeout3
  676.  
  677.     move.l    a3,a0
  678.     move.l    a4,a1
  679.     moveq.l    #numcols,d6
  680. fadeout5
  681.     clr.l    d1
  682.     clr.l    d2
  683.     clr.l    d3
  684.     move.b    (a0)+,d1
  685.     move.b    (a0)+,d2
  686.     move.b    (a0)+,d3
  687.     addq.l    #1,a0
  688.  
  689.     rol.b    #4,d2
  690.     rol.w    #8,d1
  691.     or.w    d1,d2
  692.     or.w    d2,d3
  693.     move.w    d3,(a1)+
  694.  
  695.     dbra    d6,fadeout5
  696.     bsr    frame
  697.     bsr    frame
  698.     dbra    d0,fadeout2
  699.     rts
  700.  
  701. timess    equ    80
  702. timehl    equ    40
  703.  
  704.     cnop    0,4
  705. btshow
  706.     bsr    frame
  707.     move.l    #btcop,cop1
  708.  
  709.     clr.l    d0
  710.     move.b    #timess,d0
  711. bt1    bsr    frame
  712.     dbra    d0,bt1
  713.  
  714.     move.l    #15,d0
  715.     lea    btde1,a0
  716.     lea    btor1,a1
  717. bt1_1
  718.     move.l    (a1)+,(a0)+
  719.     dbra    d0,bt1_1
  720.  
  721.     clr.l    d0
  722.     move.b    #timess,d0
  723. bt2    bsr    frame
  724.     dbra    d0,bt2
  725.  
  726.     lea    btl1,a0
  727.     move.w    #$567,2(a0)
  728.     move.w    #$acd,6(a0)
  729.     move.w    #$add,10(a0)
  730.     move.w    #$bdd,14(a0)
  731.     
  732.     clr.l    d0
  733.     move.b    #timess,d0
  734. bt3    bsr    frame
  735.     dbra    d0,bt3
  736.  
  737.     move.l    #31,d0
  738.     lea    btl2,a0
  739.     lea    btor2,a1
  740. bt3_1
  741.     move.l    (a1)+,(a0)+
  742.     dbra    d0,bt3_1
  743.  
  744.     clr.l    d0
  745.     move.b    #timess,d0
  746. bt4    bsr    frame
  747.     dbra    d0,bt4
  748.  
  749.     lea    btl3,a0
  750.     move.w    #$567,2(a0)
  751.     move.w    #$acd,6(a0)
  752.     move.w    #$add,10(a0)
  753.     move.w    #$bdd,14(a0)
  754.  
  755.     clr.l    d0
  756.     move.w    #timess*4,d0
  757. bt_fin    bsr    frame
  758.     dbra    d0,bt_fin
  759.     rts
  760.  
  761.     cnop    0,4
  762. aishow
  763.     bsr    frame
  764.     move.l    #a64cop,cop1
  765.  
  766.     lea    a64.0,a0
  767.     move.w    #$000,2(a0)
  768.     move.w    #$b78,6(a0)
  769.     move.w    #$745,10(a0)
  770.     move.w    #$e9a,14(a0)
  771.  
  772.     clr.l    d0
  773.     move.b    #timess,d0
  774. ai1    bsr    frame
  775.     dbra    d0,ai1
  776.  
  777.     lea    a64.1,a0
  778.     move.w    #$000,2(a0)
  779.     move.w    #$b78,6(a0)
  780.     move.w    #$745,10(a0)
  781.     move.w    #$e9a,14(a0)
  782.  
  783.     clr.l    d0
  784.     move.b    #timess,d0
  785. ai2    bsr    frame
  786.     dbra    d0,ai2
  787.  
  788.     lea    a64.2,a0
  789.     move.w    #$000,2(a0)
  790.     move.w    #$b78,6(a0)
  791.     move.w    #$745,10(a0)
  792.     move.w    #$e9a,14(a0)
  793.  
  794.     clr.l    d0
  795.     move.b    #timess,d0
  796. ai3    bsr    frame
  797.     dbra    d0,ai3
  798.  
  799.     lea    a64.3,a0
  800.     move.w    #$000,2(a0)
  801.     move.w    #$b78,6(a0)
  802.     move.w    #$745,10(a0)
  803.     move.w    #$e9a,14(a0)
  804.  
  805.     clr.l    d0
  806.     move.b    #timess,d0
  807. ai4    bsr    frame
  808.     dbra    d0,ai4
  809.  
  810.     lea    a64.4,a0
  811.     move.w    #$000,2(a0)
  812.     move.w    #$b78,6(a0)
  813.     move.w    #$745,10(a0)
  814.     move.w    #$e9a,14(a0)
  815.  
  816.     clr.l    d0
  817.     move.b    #timess,d0
  818. ai5    bsr    frame
  819.     dbra    d0,ai5
  820.  
  821.     lea    a64.5,a0
  822.     move.w    #$000,2(a0)
  823.     move.w    #$b78,6(a0)
  824.     move.w    #$745,10(a0)
  825.     move.w    #$e9a,14(a0)
  826.  
  827. ai_fin    clr.l    d0
  828.     move.w    #timess*3,d0
  829. ai_f_1    bsr    frame
  830.     dbra    d0,ai_f_1
  831.     rts
  832.  
  833.     IFEQ    MUSICA
  834.     include    "replay.s"
  835.     ENDC
  836.  
  837. ***************** COPPER LIST
  838.  
  839.     SECTION CopperLists,DATA_C
  840.  
  841.     cnop    0,4
  842. fincop
  843.     dc.w $08e,$2881,$090,$28C1    ; DIWindow Size YX
  844.     dc.w $092,$0038,$094,$00D0    ; DDFetch
  845.  
  846.     dc.w $100,$4200            ; BPLCONtrol0
  847.     dc.w $108,$0000,$10a,$0000
  848. bpl0    dc.w $0e0,$0000,$0e2,$0000
  849.     dc.w $0e4,$0000,$0e6,$0000
  850.     dc.w $0e8,$0000,$0ea,$0000
  851.     dc.w $0ec,$0000,$0ee,$0000
  852.  
  853.     dc.w $0180,$0000,$0182,$0FFF
  854.     dc.w $0184,$0EEE,$0186,$0DDDf
  855.     dc.w $0188,$0CCC,$018A,$0BBB
  856.     dc.w $018C,$0AAA,$018E,$0999
  857.     dc.w $0190,$0888,$0192,$0777
  858.     dc.w $0194,$0666,$0196,$0555
  859.     dc.w $0198,$0444,$019A,$0333
  860.     dc.w $019C,$0222,$019E,$0111
  861.     dc.w $01a0,$0444
  862.  
  863.     dc.w $6401,$fffe
  864.     dc.w $100,$0200
  865.  
  866.     dc.w $108,$0000,$10a,$0000
  867. bpl1    dc.w $0e0,$0000,$0e2,$0000
  868.     dc.w $0e4,$0000,$0e6,$0000
  869.     dc.w $0e8,$0000,$0ea,$0000
  870.     dc.w $0ec,$0000,$0ee,$0000
  871.     dc.w $0f0,$0000,$0f2,$0000
  872.  
  873.     dc.w    $180,$000,$182,$333    ;paleta original
  874.     dc.w    $184,$555,$186,$777
  875.     dc.w    $188,$AAA,$18A,$CCC
  876.     dc.w    $18C,$FFF,$18E,$000
  877.  
  878. ;    dc.w $180,$000,$182,$111
  879. ;    dc.w $184,$333,$186,$555
  880. ;    dc.w $188,$777,$18a,$999
  881. ;    dc.w $18C,$bbb,$18e,$000
  882.  
  883.     dc.w $0190,$0000    ; Sombra
  884.     dc.w $0192,$0111
  885.     dc.w $0194,$0222
  886.     dc.w $0196,$0333
  887.     dc.w $0198,$0444
  888.     dc.w $019a,$0555
  889.     dc.w $019c,$0666
  890.     dc.w $019e,$0000
  891.  
  892.     dc.w $6501,$fffe
  893.     dc.w $100,$5200            ; BPLCONtrol0
  894.  
  895. cf3    equ    $0fff
  896.  
  897.     dc.w $01a2,cf3
  898.     dc.w $01a4,cf3
  899.     dc.w $01a6,cf3
  900.     dc.w $01a8,cf3
  901.     dc.w $01aa,cf3
  902.     dc.w $01ac,cf3
  903.     dc.w $01ae,cf3
  904.  
  905.     dc.w $01b0,cf3        ; 31
  906.     dc.w $01b2,cf3
  907.     dc.w $01b4,cf3
  908.     dc.w $01b6,cf3
  909.     dc.w $01b8,cf3
  910.     dc.w $01ba,cf3
  911.     dc.w $01bc,cf3
  912.     dc.w $01be,cf3
  913.     dc.w $01c0,cf3
  914.  
  915.     dc.w $6601,$fffe
  916.     dc.w $01a0,$888
  917.  
  918.     dc.w $6701,$fffe
  919.     dc.w $01a0,$ccc
  920.  
  921.     dc.w $6801,$fffe
  922.     dc.w $01a0,$fff
  923.  
  924.     dc.w $ffff,$fffe,$ffff,$fffe
  925.  
  926.     cnop    0,4
  927. distcop
  928.     dc.w     $08e,$2881,$090,$28C1    ; DIWindow Size YX
  929.     dc.w     $092,$0038,$094,$00D0    ; DDFetch
  930.  
  931.     dc.w     $100,$4200        ; BPLCONtrol0
  932.     dc.w     $108,$0000,$10a,$0000
  933. disbpl    dc.w     $0e0,$0000,$0e2,$0000
  934.     dc.w     $0e4,$0000,$0e6,$0000
  935.     dc.w     $0e8,$0000,$0ea,$0000
  936.     dc.w    $0ec,$0000,$0ee,$0000
  937.  
  938.     dc.w    $ffff,$fffe,$ffff,$fffe
  939.  
  940.     cnop    0,4
  941. btcop
  942.     dc.w     $08e,$2881,$090,$28C1    ; DIWindow Size YX
  943.     dc.w     $092,$0038,$094,$00D0    ; DDFetch
  944.  
  945.     dc.w     $100,$5200        ; BPLCONtrol0
  946.     dc.w     $108,$0000,$10a,$0000
  947. btbpl    dc.w     $0e0,$0000,$0e2,$0000
  948.     dc.w     $0e4,$0000,$0e6,$0000
  949.     dc.w     $0e8,$0000,$0ea,$0000
  950.     dc.w    $0ec,$0000,$0ee,$0000
  951.     dc.w    $0f0,$0000,$0f2,$0000
  952.  
  953. btde1
  954.     dc.w    $180,$000,$182,$000,$184,$000,$186,$000    ; 0
  955.     dc.w    $188,$000,$18A,$000,$18C,$000,$18E,$000 ; 4
  956.     dc.w    $190,$000,$192,$000,$194,$000,$196,$000 ; 8
  957.     dc.w    $198,$000,$19A,$000,$19C,$000,$19E,$000    ; 12
  958.  
  959.     dc.w    $7a01,$fffe
  960. btl1    dc.w    $0182,$0000,$19a,$000,$19c,$000,$19e,$000
  961.  
  962.     dc.w    $9501,$fffe
  963. btl2    dc.w    $180,$000,$182,$000,$184,$000,$186,$000    ; 0
  964.     dc.w    $188,$000,$18A,$000,$18C,$000,$18E,$000 ; 4
  965.     dc.w    $190,$000,$192,$000,$194,$000,$196,$000 ; 8
  966.     dc.w    $198,$000,$19A,$000,$19C,$000,$19E,$000    ; 12
  967.     dc.w    $1A0,$000,$1A2,$000,$1A4,$000,$1A6,$000    ; 16
  968.     dc.w    $1A8,$000,$1AA,$000,$1AC,$000,$1AE,$000    ; 20
  969.     dc.w    $1B0,$000,$1B2,$000,$1B4,$000,$1B6,$000    ; 24
  970.     dc.w    $1B8,$000,$1BA,$000,$1BC,$000,$1BE,$000    ; 28
  971.  
  972.     dc.w    $fe01,$fffe
  973. btl3    dc.w    $0182,$0000,$19a,$000,$19c,$000,$19e,$000
  974.  
  975.     dc.w    $ffff,$fffe,$ffff,$fffe
  976.  
  977.     cnop    0,4
  978.  
  979. macop    dc.w $08e,$2881,$090,$28C1    ; DIWindow Size YX
  980.     dc.w $092,$0038,$094,$00D0    ; DDFetch
  981.  
  982.     dc.w $100,$4200            ; BPLCONtrol0
  983.     dc.w $108,$0000,$10a,$0000
  984. mc0    dc.w $0e0,$0000,$0e2,$0000
  985.     dc.w $0e4,$0000,$0e6,$0000
  986.     dc.w $0e8,$0000,$0ea,$0000
  987.     dc.w $0ec,$0000,$0ee,$0000
  988.  
  989.     dc.w $0180,$0000,$0182,$0FFF
  990.     dc.w $0184,$0EEE,$0186,$0DDD
  991.     dc.w $0188,$0CCC,$018A,$0BBB
  992.     dc.w $018C,$0AAA,$018E,$0999
  993.     dc.w $0190,$0888,$0192,$0777
  994.     dc.w $0194,$0666,$0196,$0555
  995.     dc.w $0198,$0444,$019A,$0333
  996.     dc.w $019C,$0222,$019E,$0111
  997.  
  998. mcypos    dc.w $6401,$fffe
  999.     dc.w $0100,$2200        ; BPLCONtrol0
  1000.     dc.w $0108,$0000,$010a,$0000
  1001. mc1    dc.w $00e0,$0000,$00e2,$0000
  1002.     dc.w $00e4,$0000,$00e6,$0000
  1003. mc1pal    dc.w $0180,$0000,$0182,$0555
  1004.     dc.w $0184,$0aaa,$0186,$0fff
  1005.  
  1006.     dc.w $ffff,$fffe,$ffff,$fffe
  1007.  
  1008. a64cop    dc.w $08e,$2881,$090,$28C1    ; DIWindow Size YX
  1009.     dc.w $092,$0038,$094,$00D0    ; DDFetch
  1010.     dc.w $0100,$2200        ; BPLCONtrol0
  1011.     dc.w $0108,$0000,$010a,$0000
  1012. a64.bpl    dc.w $00e0,$0000,$00e2,$0000
  1013.     dc.w $00e4,$0000,$00e6,$0000
  1014.  
  1015. a64.0    dc.w $0180,$0000,$0182,$0000
  1016.     dc.w $0184,$0000,$0186,$0000
  1017.  
  1018.     dc.w $5401,$fffe
  1019. a64.1    dc.w $0180,$0000,$0182,$0000
  1020.     dc.w $0184,$0000,$0186,$0000
  1021.  
  1022.     dc.w $7201,$fffe
  1023. a64.2    dc.w $0180,$0000,$0182,$0000
  1024.     dc.w $0184,$0000,$0186,$0000
  1025.  
  1026.     dc.w $9f01,$fffe
  1027. a64.3    dc.w $0180,$0000,$0182,$0000
  1028.     dc.w $0184,$0000,$0186,$0000
  1029.  
  1030.     dc.w $e501,$fffe
  1031. a64.4    dc.w $0180,$0000,$0182,$0000
  1032.     dc.w $0184,$0000,$0186,$0000
  1033.  
  1034.     dc.w $fe01,$fffe
  1035. a64.5    dc.w $0180,$0000,$0182,$0000
  1036.     dc.w $0184,$0000,$0186,$0000
  1037.  
  1038.     dc.w $ffff,$fffe,$ffff,$fffe
  1039.  
  1040.     SECTION Titulos,DATA_C
  1041.  
  1042.     cnop    0,4
  1043. bgtnc    incbin    "datas/bg_tnc_32.raw"
  1044.  
  1045.     cnop    0,4
  1046. a64k    incbin    "datas/a64k.raw"
  1047.  
  1048.     SECTION Distortions,DATA_C
  1049.  
  1050.     cnop    0,4
  1051. titulo    incbin    "datas/distortions.raw"
  1052.  
  1053.     cnop    0,4
  1054. small    incbin    "datas/small.raw"
  1055.  
  1056.     SECTION Calavera,DATA_C
  1057.  
  1058.     cnop    0,4
  1059. calav    incbin    "datas/calavera.raw"
  1060.     dcb.l    920,0
  1061.  
  1062.     SECTION Bobs,DATA_C
  1063.  
  1064.     cnop    0,4
  1065. bobgfx    incbin    "datas/bob.raw"
  1066.     cnop    0,4
  1067. bobmask    incbin    "datas/bob-mask.raw"
  1068.  
  1069.     IFEQ    MUSICA
  1070.     
  1071.     SECTION Musica_1,DATA_C    
  1072.     
  1073.     cnop    0,4
  1074. mt_dat1    incbin    "datas/mod.chip"
  1075.  
  1076.     ENDC
  1077.  
  1078.     SECTION bitplanes,BSS_C
  1079.     
  1080.     cnop    0,4
  1081. nulo    dcb.l    10,0
  1082.  
  1083.     cnop    0,4
  1084. plano1    dcb.l    $1400,0
  1085.  
  1086.     cnop    0,4
  1087. mc_11    dcb.l    $1400*8,0
  1088.  
  1089.  
  1090. ************** DATAS
  1091.  
  1092.     SECTION Variables,DATA
  1093.  
  1094.     cnop    0,4
  1095. GfxLib        dc.b    "graphics.library",0
  1096.  
  1097.     cnop    0,4
  1098. IntEnaR        dc.l    0
  1099. IntReqR        dc.l    0
  1100. DmaConR        dc.l    0
  1101. AdkConR        dc.l    0
  1102. SysStack    dc.l    0
  1103. Int3Save    dc.l    0
  1104. GfxBase        dc.l    0
  1105. OldCopper    dc.l    0
  1106.  
  1107. OldView        dc.l    0
  1108. VectorBase    dc.l    0
  1109.  
  1110. timer        dc.l    0
  1111. scroltmp    dc.l    0
  1112. letratmp    dc.l    0
  1113. puntsig        dc.l    0
  1114.  
  1115. inf_temp    dc.l    0
  1116. inf_fr_bob    dc.l    0
  1117. inf_fr_scr    dc.l    0
  1118. inf_path    dc.l    0
  1119.  
  1120. detect_30    dc.l    0
  1121.  
  1122.     cnop    0,4
  1123. inf_p_1
  1124.     incbin    "datas/inf-path-1.raw"
  1125. inf_p_2
  1126.     incbin    "datas/inf-path-2.raw"
  1127. inf_p_3
  1128.     incbin    "datas/inf-path-3.raw"
  1129. inf_p_4
  1130.     incbin    "datas/inf-path-4.raw"
  1131.  
  1132.     cnop    0,4
  1133. font    dcb.b    32*8,0
  1134.     incbin    "datas/font-mano.raw"
  1135.  
  1136.     cnop    0,4
  1137. texto        
  1138.     incbin    "datas/texto-new.asc"
  1139.     dc.l    0
  1140.         
  1141. tmp    dc.l    0,0,0,0
  1142.     dc.l    0,0,0,0
  1143.     dc.l    0,0,0,0
  1144.     dc.l    0,0,0,0
  1145.  
  1146. target    dc.l    $00000400
  1147.     dc.l    $0e0e0e00
  1148.     dc.l    $00000000
  1149.     dc.l    $0c0b0900
  1150.     dc.l    $070a0800
  1151.     dc.l    $06060600
  1152.     dc.l    $0a0a0a00
  1153.     dc.l    $04060500
  1154.     dc.l    $01040300
  1155.     dc.l    $06090a00
  1156.     dc.l    $09080500
  1157.     dc.l    $06050200
  1158.     dc.l    $03060700
  1159.     dc.l    $00030400
  1160.     dc.l    $06040700
  1161.     dc.l    $04020500
  1162.  
  1163.     cnop    0,4
  1164. btor1
  1165.     dc.w    $0180,$0000,$0182,$0122,$0184,$0233,$0186,$0344    ; 0
  1166.     dc.w    $0188,$0445,$018A,$0456,$018C,$0467,$018E,$0578
  1167.     dc.w    $0190,$0689,$0192,$069A,$0194,$07AB,$0196,$08BC    ; 8
  1168.     dc.w    $0198,$09CC,$019A,$0ACD,$019C,$0ADD,$019E,$0BDD
  1169. btor2
  1170.     dc.w    $0180,$0000,$0182,$0122,$0184,$0233,$0186,$0344    ; 0
  1171.     dc.w    $0188,$0445,$018A,$0456,$018C,$0467,$018E,$0578
  1172.     dc.w    $0190,$0689,$0192,$069A,$0194,$07AB,$0196,$08BC    ; 8
  1173.     dc.w    $0198,$09CC,$019A,$0ACD,$019C,$0ADD,$019E,$0BDD
  1174.     dc.w    $01A0,$0B84,$01A2,$0C95,$01A4,$0555,$01A6,$0DB8 ; 16
  1175.     dc.w    $01A8,$0989,$01AA,$005A,$01AC,$0DA6,$01AE,$0777
  1176.     dc.w    $01B0,$0CA9,$01B2,$0999,$01B4,$0CCC,$01B6,$05CC ; 24
  1177.     dc.w    $01B8,$00BB,$01BA,$00AC,$01BC,$0000,$01BE,$09DD
  1178.